package controllers
{
	import com.axon.mvc.helpers.AxVerbs;
	import com.axon.mvc.patterns.command.AxSimpleCommand;
	
	import flash.display.DisplayObject;
	
	import models.vo.Foto;
	import models.vo.Vistoria;
	
	import views.mediators.FotoAmpliacaoMediator;
	import views.mediators.FotoPropMediator;

	public class FotoCommand extends AxSimpleCommand
	{
		//////////////////////////////////////////////////////////////////////////////////////////////////////
		
		public function execList(sender: Object, body: Object, extraInfo: Object): void
		{
			AppFacade(facade).fotoProxy.list(body as Vistoria);	
		}

		//////////////////////////////////////////////////////////////////////////////////////////////////////
		
		public function execReadPopUp(sender: Object, body: Object, extraInfo: Object): void
		{
			AppFacade(facade).regMediator( new FotoAmpliacaoMediator(DisplayObject(extraInfo), body as Foto) );
		}

		//////////////////////////////////////////////////////////////////////////////////////////////////////
		
		public function execNewPopUp(sender: Object, body: Object, extraInfo: Object): void
		{
			AppFacade(facade).regMediator( new FotoPropMediator(DisplayObject(extraInfo), new Foto(), AxVerbs.NEW, (body as Vistoria)) );
		}

		//////////////////////////////////////////////////////////////////////////////////////////////////////
		
		public function execEditPopUp(sender: Object, body: Object, extraInfo: Object): void
		{
			AppFacade(facade).regMediator( new FotoPropMediator(DisplayObject(extraInfo), Foto(body), AxVerbs.EDIT, Foto(body).vistoria) );
		}

		//////////////////////////////////////////////////////////////////////////////////////////////////////
		
		public function execSave(sender: Object, body: Object, extraInfo: Object): void
		{
			if ( (!Foto(body).id) || (Foto(body).id == "") )
				AppFacade(facade).fotoProxy.create(body as Foto);
			else
				AppFacade(facade).fotoProxy.update(body as Foto);
		}

		//////////////////////////////////////////////////////////////////////////////////////////////////////
		
		public function execDelete(sender: Object, body: Object, extraInfo: Object): void
		{
			AppFacade(facade).fotoProxy.apagar(body as Foto);
		}

	}
}